//这个函数的目的就是为了根据后台返回的数据，动态的计算出用户需要的路由

import allRoutes from "@/router/allRouters"

/**
 * 
 * @param {Array} menuList  后台返回的用户菜单名字数组 
 * @param {Array} allRoutes  我们定义的所有的路由配置
 * @return {Array} 根据后台菜单名计算出来的用户routes配置
 */


const recursionRoutes = (menuList = [], allRoutes = []) => {
    let userRoutes = [];
    menuList.forEach(item => {
        allRoutes.forEach(routes => {
            if (item.name === routes.meta.name) {//如果后台返回的数据中 其中某项的name和routes的meta的name相同，说明具备当前routes，把routes配置添加到userRoutes这个数组中
                userRoutes.push(routes)
                if (item.children && item.children.length > 0) {//递归子路由
                    routes.children = recursionRoutes(item.children, routes.children)
                }
            }
        })
    })
    return userRoutes;
}
export default recursionRoutes;